home *** CD-ROM | disk | FTP | other *** search
/ Adobe Graphics & Publishing SDK 1996 December / Adobe Graphics & Publishing SDK 1996 December.iso / mac / Illustrator 6.0 SDK r1 Mac / AI Plugin Interface / AIPathStyle.h < prev    next >
Text File  |  1995-12-21  |  3KB  |  144 lines

  1. /**
  2.  
  3.     AIPathStyle.h
  4.     Copyright (c) 1995 Adobe Systems Incorporated.
  5.     All Rights Reserved
  6.  
  7.     Adobe Illustrator 6.0 Path Style Suite.
  8.  
  9.  **/
  10.  
  11. #ifndef __AIPathStyle__
  12. #define __AIPathStyle__
  13.  
  14.  
  15. /*******************************************************************************
  16.  **
  17.  **    Imports
  18.  **
  19.  **/
  20.  
  21. #include "AITypes.h"
  22. #include "AIArt.h"
  23. #include "AIColor.h"
  24. #include "AIFixedMath.h"
  25.  
  26.  
  27. #if Macintosh
  28.     #ifdef __cplusplus
  29.     extern "C" {
  30.     #endif
  31.     
  32.     #if PRAGMA_ALIGN_SUPPORTED
  33.     #pragma options align=mac68k
  34.     #endif
  35.     
  36.     #if PRAGMA_IMPORT_SUPPORTED
  37.     #pragma import on
  38.     #endif
  39. #endif
  40.  
  41.  
  42. /*******************************************************************************
  43.  **
  44.  **    Constants
  45.  **
  46.  **/
  47.  
  48. #define kAIPathStyleSuite        "AI Path Style Suite"
  49. #define kAIPathStyleVersion        2
  50.  
  51.  
  52. #define kMaxDashComponents        6    /* Maximum number of dash components */
  53.  
  54. typedef enum {
  55.     kButtCap = 0,                /* Butt line caps */
  56.     kRoundCap,                    /* Round line caps */
  57.     kProjectingCap                /* Projecting line caps */
  58. } AILineCap;
  59.  
  60.  
  61. typedef enum {
  62.     kMiterJoin = 0,                /* Miter line joins */
  63.     kRoundJoin,                    /* Round line joins */
  64.     kBevelJoin                    /* Bevel line joins */
  65. } AILineJoin;
  66.  
  67.  
  68. #define kTooManyDashComponents        'DASH'
  69.  
  70.  
  71. /*******************************************************************************
  72.  **
  73.  **    Types
  74.  **
  75.  **/
  76.  
  77. typedef struct {
  78.     AIColor color;                 /* Fill color */
  79.     Boolean overprint;            /* Overprint */
  80. } AIFillStyle;
  81.  
  82.  
  83. typedef struct {
  84.     short length;                /* 0 if solid */
  85.     Fixed offset;                /* Dash offset */
  86.     Fixed array[kMaxDashComponents];    /* Dash array */
  87. } AIDashStyle;
  88.  
  89.  
  90. typedef struct {
  91.     AIColor color;                /* Stroke color */
  92.     Boolean overprint;        /* Overprint - not meaningful if ColorTag is pattern */
  93.     Fixed width;                /* Line width */
  94.     AIDashStyle dash;            /* Stroke dash */
  95.     AILineCap cap;                /* Line cap */
  96.     AILineJoin join;            /* Line join */
  97.     Fixed miterLimit;            /* Line miter limit */
  98. } AIStrokeStyle;
  99.  
  100.  
  101. typedef struct {
  102.     Boolean fillPaint;        /* Whether or not to fill the path */
  103.     Boolean strokePaint;        /* Whether or not to stroke the path */
  104.     AIFillStyle fill;            /* Fill style, if fillPaint is true */
  105.     AIStrokeStyle stroke;    /* Stroke style, if strokePaint is true */
  106.     Boolean clip;                /* Whether or not to use this as a clipping path */
  107.     Boolean evenodd;            /* Whether or not to use the even-odd rule to determine path insideness */    
  108.     Fixed resolution;            /* Path's resolution */
  109.     unsigned char note[256];
  110. } AIPathStyle;
  111.  
  112.  
  113. /*******************************************************************************
  114.  **
  115.  **    Suite
  116.  **
  117.  **/
  118.  
  119. typedef struct {
  120.  
  121.     MACPASCAL FXErr (*GetPathStyle) ( AIArtHandle path, AIPathStyle *style );
  122.     MACPASCAL FXErr (*SetPathStyle) ( AIArtHandle path, AIPathStyle *style );
  123.     MACPASCAL FXErr (*GetCurrentPathStyle) ( AIPathStyle *style );
  124.  
  125. } AIPathStyleSuite;
  126.  
  127.  
  128. #if Macintosh
  129.     #if PRAGMA_IMPORT_SUPPORTED
  130.     #pragma import off
  131.     #endif
  132.     
  133.     #if PRAGMA_ALIGN_SUPPORTED
  134.     #pragma options align=reset
  135.     #endif
  136.     
  137.     #ifdef __cplusplus
  138.     }
  139.     #endif
  140. #endif
  141.  
  142.  
  143. #endif
  144.